//合同列表
var $customerContractTable = $('#customerContractTableList');

//防止表头与表格不对齐
$(window).resize(function () {
    $customerContractTable.bootstrapTable('resetView');
});

//初始化操作
$(function () {
    //高级筛选日期--配置参数
    $('.date-input').datepicker({
        language: "zh-CN",
        autoClose: true,
        clearBtn: true,
        todayHighlight: true,
        format: "yyyy-mm-dd"
    });

    //初始化合同列表
    customerContractTableListInit();

    //加载当前登录人所属公司下的全部人员账号(accountId)
    loadPersonByCompanyId();

    // 重置
    $('#btn-reset').on('click', function () {
        $('#btn-search-simple').prev('input').val('');
        resetBanner(); //重置(全部/本周/本月/本年)为全部;
        $('.filter-content select').val('').selectpicker('refresh');//重置--高级筛选select框
        resetSearch.call(this, customerContractTableListInit);
    });

    // 简单搜索
    $('#btn-search-simple').on('click', function () {
        resetBanner(); //重置(全部/本周/本月/本年)为全部;
        search.call(this, $customerContractTable, queryParams);
    });
    // 高级搜索
    $('#btn-search').on('click', function () {
        check($("#contractStartDate").val(),$("#contractEndDate").val())
        checkTM($("#createTmStart").val(),$("#createTmEnd").val())
        search($customerContractTable, advancedQueryParams);
    });

    // 高级搜索 日期判断是否后面比前面大
    function check(startTime,endTime){
        if(startTime.length>0 && endTime.length>0){
            var startTmp=startTime.split("-");
            var endTmp=endTime.split("-");
            var sd=new Date(startTmp[0],startTmp[1],startTmp[2]);
            var ed=new Date(endTmp[0],endTmp[1],endTmp[2]);
            if(sd.getTime()>ed.getTime()){
                $.alert('合同截止日期不能小于起始日期');
                return false;
            }
        }
        return true;
    }

    function checkTM(startTime,endTime){
        if(startTime.length>0 && endTime.length>0){
            var startTmp=startTime.split("-");
            var endTmp=endTime.split("-");
            var sd=new Date(startTmp[0],startTmp[1],startTmp[2]);
            var ed=new Date(endTmp[0],endTmp[1],endTmp[2]);
            if(sd.getTime()>ed.getTime()){
                $.alert('创建截止日期不能小于创建起始日期');
                return false;
            }
        }
        return true;
    }
});

/**
 * 管理系统(普通管理员)>合同管理>合同列表
 * @author yincuimei
 */
function customerContractTableListInit() {
    //先销毁表格
    $customerContractTable.bootstrapTable('destroy');
    $customerContractTable.bootstrapTable({
        classes: 'table table-bordered table-hover table-striped',
        url: '/customerContract/selectNormalCustomerContractList',//请求地址
        method: 'post',//请求方式
        contentType: "application/x-www-form-urlencoded",//请求内容类型
        dataType: "json",//数据类型
        striped: true,//是否显示行间隔色
        sortable: true,//是否启用排序
        sortOrder: "desc",//排序方式
        sortName: 'createTm',//排序字段
        cache: false,//是否使用缓存
        showColumns: false,//显示隐藏列
        showRefresh: false,//显示刷新按钮
        showToggle: false,//切换显示样式
        showFooter: false,//显示Table脚部
        pagination: true,//是否显示分页
        showPaginationSwitch: false,//是否显示分页按钮
        clickToSelect: false,//是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,//最少要显示的列数
        undefinedText: '',//cell没有值时显示
        sidePagination: "server",//分页方式：client客户端分页，server服务端分页
        uniqueId: 'contractId',
        idField: 'contractId',
        pageSize: globalPageSize,//每页的记录行数
        pageNumber: 1,//初始化加载第1页，默认第1页
        pageList: globalPageList,//可供选择的每页的行数

        fixedColumns: true,     // 冻结列
        fixedNumber: 1,         // 左侧固定列
        fixedRightNumber: 1,    // 右侧固定列

        queryParams: advancedQueryParams,//查询参数
        columns: [
            {title: '主键', field: 'contractId', visible: false},
            {title: '客户Id', field: 'customerId', visible: false},
            {title: '序号', field: 'index', align: 'left', valign: 'middle', width: '52', formatter: indexFormat},
            {title: '合同编号' ,field: 'contractNumber',align: 'left', valign: 'middle', width: '120', class: 'ellipsis'},
            {title: '客户名称', field: 'customerName',align: 'left', valign: 'middle'},
            {title: '合同类型', field: 'contractType',align: 'left', valign: 'middle'},
            {title: '合同状态', field: 'contractStatus',align: 'left', valign: 'middle'},
            {title: '审核状态', field: 'contractReviewStatus',align: 'left', valign: 'middle'},
            {title: '创建日期', field: 'createTm', sortable: true, align: 'left', width: '120', valign: 'middle'},
            {title: '合同开始日期', field: 'contractStartDate',align: 'left', valign: 'middle'},
            {title: '合同结束日期', field: 'contractEndDate',align: 'left', valign: 'middle'},
            {title: '是否查验', field: 'whetherCheck', align: 'left', valign: 'middle'},
            {title: '更新日期', field: 'updateTm', sortable: true, align: 'left', valign: 'middle'},
            {title: '所有人', field: 'createPeopleName',align: 'left', valign: 'middle'},
            {title: '操作',field: 'operateFlag',align: 'center',events: operateEvents, formatter: genderOpt,width:'15%'},
        ],
        responseHandler: function (result) {
            if (result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    "total": result.totalRecords//总条数
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function () {
            // table操作列下拉菜单效果
            // tableNav();

            // table列可拖动宽度
            $('.JCLRgrips').remove();
            $('#customerContractTableList').css({
                minWidth: $('#customerContractTableList').width()
            }).colResizable({
                resizeMode: 'overflow',
                liveDrag: true,
                gripInnerHtml: "<div class='grip'></div>",
                draggingClass: "dragging",
                disabledColumns: [0,10,],      // 禁止拖动的列
                postbackSafe: true,                                         // 刷新后保持拖动的宽度
                partialRefresh: true,                                       // 刷新表格之后继续保持可拖动功能
                flush: true,
                minWidth: 80,
            });
        },
        onLoadError: function (status) {
            if (status == 403) {
                alert("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                alert("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    });
}

/**
 * 普通搜索查询条件参数
 */
function queryParams(params){
    params.pageSize = params.limit;
    params.pageIndex = (params.offset / params.limit) + 1;
    params.sortName = params.sort; //排序列名
    params.sortOrder = params.order;//排序方式

    params.dateType = $('#dateType').val();//dateType(all:全部; thisWeek:本周; thisMonth:本月; thisYear:本年)

    //普通搜索条件
    params.contractNumber = $.trim($('#contractNumberMin').val());//合同编号
    return params;
}

/**
 * 高级搜索查询条件参数
 */
function advancedQueryParams(params){
    params.pageSize = params.limit;
    params.pageIndex = (params.offset / params.limit) + 1;
    params.sortName = params.sort; //排序列名
    params.sortOrder = params.order;//排序方式

    params.dateType = $('#dateType').val();//dateType(all:全部; thisWeek:本周; thisMonth:本月; thisYear:本年)
    //清空普通搜索条件
    $('#contractNumberMin').val('');//合同编号

    params.customerName =  $.trim($('#customerName').val());  //客户名称
    params.createTmStart = $('#createTmStart').val();  //合同创建开始日期
    params.createTmEnd = $('#createTmEnd').val();    //合同创建截止日期
    params.contractStartDate = $('#contractStartDate').val();  //合同开始日期
    params.contractEndDate = $('#contractEndDate').val();    //合同结束日期
    params.contractStatus = $('#contractStatusSelect option:selected').val();//合同状态
    params.contractType = $('#contractTypeSelect option:selected').val();//合同类型
    params.specialApprovalStatus = $('#approvalStatusSelect option:selected').val();//是否特批
    params.paymentStatus = $('#paymentStatusSelect option:selected').val();//回款状态
    params.applyElectronicContract = $('#electronicContractSelect option:selected').val();//是否申请电子合同
    params.accountId = $('#userSelect option:selected').val();//创建人
    return params;
}

/**
 * 合同列表--列表序列号
 */
function indexFormat(value, row, index) {
    return index + 1;
}

/**
 * 合同列表--自定义操作列内容
 */
function genderOpt(value, row, index) {
    let html = '';
    html += '<button type="button" class="btn btn-default" id="detail"><i class="mdi mdi-eye"></i>查看</button>';
    return html;
}

/**
 * 合同列表--自定义操作列事件
 */
window.operateEvents = {
    //查看点击事件
    'click #detail': function (e, value, row, index) {
        parent.$(parent.document).data('multitabs').create({
            iframe : true,
            title : '合同详情',
            url : "/front/contractManager/contractDetailAdmin?contractId=" + row.contractId
        }, true);
    }
};

/**
 * 全部/周/月/年切换
 * @param time
 */
function selectTime(time) {
    if (time == 'all') {//全部
        $('.all').addClass('active-second');
        $('.year').removeClass('active-second');
        $('.week').removeClass('active-second');
        $('.month').removeClass('active-second');
        $("#dateType").val("all");
    }
    if (time == 'year') {//本年
        $('.year').addClass('active-second');
        $('.all').removeClass('active-second');
        $('.week').removeClass('active-second');
        $('.month').removeClass('active-second');
        $("#dateType").val("thisYear");
    }
    if (time == 'month') {//本月
        $('.month').addClass('active-second');
        $('.all').removeClass('active-second');
        $('.year').removeClass('active-second');
        $('.week').removeClass('active-second');
        $("#dateType").val("thisMonth");
    }
    if (time == 'week') {//本周
        $('.week').addClass('active-second');
        $('.all').removeClass('active-second');
        $('.year').removeClass('active-second');
        $('.month').removeClass('active-second');
        $("#dateType").val("thisWeek");
    }
    $('.filter-content input').val('');//清空--高级筛选input框
    $('.filter-content select').val('').selectpicker('refresh');//清空--高级筛选select框
    $customerContractTable.bootstrapTable('refreshOptions', {pageNumber: 1});
}

/**
 * 合同列表--根据公司ID查询人员信息(高级筛选创建人)
 * @param companyId
 */
function loadPersonByCompanyId() {
    var companyId = $("#companyId").val();
    $.getJSON("/account/getAccountListByCompanyId?companyId=" + companyId, function (data) {
        if (data.code == '000000') {
            var userNameOptionHtml = '<option value="">全部</option>';
            data.data.map(function (item) {
                userNameOptionHtml += '<option value="' + item.accountId + '">' + item.userName + '</option>';
            });
            $("#userSelect").html("");
            $('#userSelect').append(userNameOptionHtml);
            $('#userSelect').selectpicker('refresh');
        }
    });
}

/**
 * 合同列表--重置全部/本周/本月/本年
 */
function resetBanner(){
    $('.all').addClass('active-second');//全部
    $('.week').removeClass('active-second');//本周
    $('.month').removeClass('active-second');//本月
    $('.year').removeClass('active-second');//本年
    $("#dateType").val("all");
}



